package array;

/**
 * 二维数组使用细节及练习
 */
public class TwoDimensionalArrayDetails {

    public static void main(String[] args) {
        /*
            1)一维数组的声明方式有：int[] x 或 int x[]
            2)二维数组的声明方式有：int[][] y 或 int[] y[] 或 int y[][]
            3)二位数组实际上是由多个一维数组组成的，它的各个一维数组的长度可以相同，也可以不同
                如：int[][] map = {{1, 2}, {3, 4, 5}}
                由map[0] 是一个含有两个元素的一维数组，map[1]是一个含有三个元素的一维数组 构成
         */

        String foo = "blue";
        boolean[] bar = new boolean[2];
        if (bar[0]) { //未赋值的数组也会有默认值
            foo = "green";
        }
        System.out.println(foo);

        char[] arr1 = {'a', 'z', 'b', 'c'};
        char[] arr2 = arr1;//arr2也指向arr1的空间，两者共用一个空间
        arr1[2] = '刘';
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr1[i] + "," + arr2[i]);
        }

        /*
            int[] test = {9, 8, 7, 6, 5, 4, 3, 2, 1}
            冒泡排序
         */
        int[] test = {9, 8, 7, 6, 5, 4, 3, 2, 1};
        for (int i = 0; i < 8; i++) { //比较8轮
            for (int j = 0; j < 8 - i; j++) { //每轮比较次数 8->7->6...->1
                if (test[j] > test[j + 1]) {
                    int temp = test[j];
                    test[j] = test[j + 1];
                    test[j + 1] = temp;
                }
            }
        }
        System.out.println("===冒泡排序后的数组如下===");
        for (int i : test) {
            System.out.print(i + " ");
        }
    }
}
